class Resoconti::CiviciDifferenziataController < DefaultController
  require_role self.parent_name.underscore
  record_select :search_on => [:indirizzo, :numero, :carraio, :annotazioni], :order_by => 'indirizzo ASC', :full_text_search => true
  
  active_scaffold :civico_differenziata do |config|
    config.label = Application.controller_label(self)
    
    config.columns[:zona_differenziata].sort_by :sql => 'zone_differenziata.name'
    list.sorting = [{:zona_differenziata => 'ASC'}, {:indirizzo => 'ASC'}, {:numero => 'ASC'}]
    
    config.actions.add :config_list, :export
    
    cassonetti = [:carta, :plastica, :vetro, :organico, :indistinto] 
    columns = [:zona_differenziata, :indirizzo, :numero, :carraio, :pedonale, :chiavi] + cassonetti + [:annotazioni]
    columns_list = [:zona_differenziata, :indirizzo, :numero, :carraio, :pedonale] + cassonetti + [:annotazioni]

    # visualizzazione colonne
    config.columns = config.list.columns = config.show.columns = config.create.columns = columns + [:updated_at]
    config.update.columns = columns
    config.config_list.default_columns = columns_list
    config.search.columns = [:zona_differenziata, :indirizzo, :numero, :carraio, :chiavi, :annotazioni]

    # configurazione colonne
    config.columns[:zona_differenziata].label = "Giro"
    config.columns[:zona_differenziata].search_sql = 'zone_differenziata.name'
    config.columns[:zona_differenziata].form_ui = :select
    config.columns[:annotazioni].options = SMALL_TEXTAREA
    config.columns[:pedonale].form_ui = :checkbox
    ([:zona_differenziata, :carraio, :chiavi, :annotazioni] + cassonetti).each { |i| config.columns[i].inplace_edit = :ajax }
    cassonetti.each { |i| config.columns[i].calculate = :sum }
    
    # subgroup

    # azioni
    config.columns[:zona_differenziata].clear_link
    config.action_links.add "Segnalazioni", :action => 'nested', :parameters => {:associations => :segnalazioni_differenziata}, :type => :member
    #config.action_links.add "Note", :action => 'nested', :parameters => {:associations => :note}, :type => :member
    config.action_links.add "Mappa", :action => 'mappa', :type => :member
    config.action_links.add "Versioni", :action => 'nested', :parameters => {:associations => :versions}, :type => :member
  end

  def mappa
    @record = CivicoDifferenziata.find(params[:id])
    render :partial => 'mappa'
  end
end
